package com.project.mapper;

import com.project.bean.ClassesBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author liuyulai
 * Created with IntelliJ IDEA.
 * Date: 21.7.11
 * Time: 12:50
 * Description: 班级持久层接口
 */
public interface IClassesMapper {
    /**
     * 根据传入的学校id信息
     * 动态查询所属学校下相关的班级集合信息
     * 此处需要进行连表查询，连接学生表计算班级包含的相应人数
     * 班级集合中对象需要包含：
     * 班级名称
     * 开班时间
     * 班级人数（计算属性）
     * 带班老师
     *
     * @param schoolId 学校id
     * @return 相关班级集合
     */
    List<ClassesBean> showClassByItem(@Param("schoolId") int schoolId);

    /**
     * 在当前进行查询的学校下添加新的班级
     * 添加的班级属于当前被查询学校
     *
     * @param classesBean 班级对象
     */
    void addNewClass(ClassesBean classesBean);

    /**
     * 根据当前选中班级的id
     * 显示该班级的相关信息(班级名称与带班老师)
     *
     * @param classesId 班级id
     * @return 班级对象
     */
    ClassesBean showClassById(@Param("classesId") int classesId);

    /**
     * 更新班级相关带班老师信息
     *
     * @param classesId   班级id
     * @param teacherName 新教师名称
     */
    void updateClassInfo(@Param("classesId") int classesId, @Param("teacherName") String teacherName);


    /**
     * 按照当前学生所属学校的id
     * 对该学校中所包含的班级进行查询
     *
     * @param schoolId 学校id
     * @return 班级集合
     */
    List<ClassesBean> findClassBySchoolId(@Param("schoolId") int schoolId);
}
